iT邦幫忙

2023 iThome 鐵人賽

DAY 8
1

Bean Scopes

最後來談Spring中的Bean作用域。Spring框架提供Bean不同的作用域,每種作用域都決定了Bean的生命週期和可見性。

  • Singleton (defult): 最常見的一種,在Singleton作用域下,Spring容器只創建一個Bean實例,並在整個應用程式中共享,且每次請求Bean時,都會返回同一個實例。
  • Prototype: 在Prototype作用域下,每當請求Bean時,Spring容器都會創建一個新的Bean實例,代表每次請求都會返回一個不同的實例。
  • Request: 這是在Web應用程式下使用的,每個HTTP請求都會創建一個新的Bean實例,使得每個HTTP請求都可以使用自己的Bean實例。
  • Session: Session作用域也是在Web應用程序中使用的,跟Request類似,差別這個是Http Session。
  • Global Session: Global Session作用域通常用於分散式Web應用程式,它表示全局Session範圍內的Bean實例,通常在集群中使用。
  • Application: Application作用域表示整個應用程序中的Bean實例。
  • WebSocket: WebSocket作用域是在WebSocket應用程式中使用的。

讓我們使用XML配置Bean的作用域:

<bean id="myBean" class="com.example.MyBean" scope="prototype">
    <!-- 其他配置 -->
</bean>

如果您使用Java配置呢??我們可以使用@Scope 註解來定義Bean的作用域:

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Scope;
import com.example.MyBean;

@Configuration
public class AppConfig {
    @Bean
    @Scope("prototype")
    public MyBean myBean() {
        return new MyBean();
    }
}

我們可以根據需求選擇適當的作用域,並在Spring配置文件或Java類中配置Bean的作用域!!

到目前為止就是Bean的所有內容啦~

參考資料

https://www.baeldung.com/spring-bean-scopes


上一篇
Day 7 : Bean 的ㄧ生
下一篇
Day 9 : Spring MVC,開發網站的好工具!
系列文
Spring、Spirng MVC 及 Spring Boot 自主學習旅途!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言